草庐IT

Python GTK+ 部件名称

全部标签

c++ - 在 Qt 中将多个小部件合并为一个

我在项目中重复使用一对QComboBox和QListWidget。它们的交互是高度耦合的——当在组合框中选择一个项目时,列表会以某种方式进行过滤。我正在跨多个对话框实现复制粘贴这两个小部件之间的所有信号和插槽连接,我认为这不是一个好主意。是否可以创建一个自定义小部件,它将容纳这两个小部件并将所有信号和插槽连接放在一个地方?如下所示:classCustomWidget{QComboBoxcombo;QListWidgetlist;...};我想将此小部件用作单个小部件。 最佳答案 通常的做法是子类QWidget(或QFrame)。cl

c++ - 在不指定名称的情况下声明堆栈变量并获取指针

众所周知,用new定义一个堆变量得到指针而不指定名称:Var*p=newVar("name",1);但是我必须稍后在程序中使用deletep清除p指向的变量。我想声明一个堆栈变量,以便在函数退出后自动清除它,但我只想获取指针,以及以下内容:Varv("name",1);Var*p=&v;非常乏味,永远不会引用说明符v。我可以声明一个堆栈类实例并在不指定其名称的情况下获取它的指针吗? 最佳答案 这里隐藏着两个问题。第一个是:Var*p=newVar("name",1);ButIhavetoclearthevariablepointed

c++ - Qt 宏关键字导致名称冲突

我正在为我的Qt项目构建一个NCurses界面。我想使用CDK,但我认为此结构的signals成员与Qtsignals关键字发生冲突。/usr/include/linux/cdk.h:411:error:expectedunqualified-idbefore'protected'如何让CDK与Qt一起工作? 最佳答案 您可以定义QT_NO_KEYWORDS宏,禁用“信号”和“槽”宏。如果你使用QMake:CONFIG+=no_keywords(QtDocumentationhere)如果您使用的是另一个构建系统,请执行任何需要将-

C++ 多重继承 - 相同的方法名称 - 我可以以某种方式删除其中一个吗?

我在C++11中有这个结构structA{intidA;voidsetId(inti){idA=i;}intgetId(){returnidA;}virtualvoidfoo()=0;};structB{intidB;voidsetId(inti){idB=i;}intgetId(){returnidB;}virtualvoidfoo2()=0;};structAB:publicA,publicB{voidfoo()override{}voidfoo2()override{}};现在在main中我可以这样调用它:AB*ab=newAB();ab->B::setId(10);但我真的不喜

c++ - Qt 中小部件集合的内存管理

很抱歉提出这个愚蠢的问题,但我是第一次使用Qt和C++,并且正在学习教程和一些示例。提到的一件事是不需要明确删除Qt内容。那么,主要问题,这是否也适用于Qt东西的集合?比如说我想要动态数量的MyWidget,所以我保留了一个vector或其中的任何一个。他们还在照顾我吗?作为附带问题,是什么让我不必担心析构函数? 最佳答案 Qt内存管理模型基于父子关系。Qt类将可选的parent作为其构造函数的参数。新实例向该父实例注册,以便在删除父实例时将其删除。如果您使用的是Qt集合(例如QList),我相信您可以将列表设置为其条目的父级。如果

c++ - 使用标签名称创建结构变量

我已经阅读了以下链接中的一篇文章http://www.embedded.com/electronics-blogs/programming-pointers/4024450/Tag-vs-Type-Names这里作者说,follwing的用法是错误的。structs{--};svar;但在我的示例代码中,它工作得很好。1#include2usingnamespacestd;34structs5{6intsd;7};8sv;9101112intmain()13{1415v.sd=10;16cout编辑:实际区别是什么?为什么它在C++中有效而在C中无效; 最佳

c++ - 指针运算符的正式名称

在指针上下文中,运算符*和&的正式名称是什么?它们似乎经常分别被称为解引用运算符和寻址运算符,但不幸的是,标准中关于一元运算符的部分没有命名它们。我真的不想再命名&address-of了,因为&返回一个指针,而不是地址。(见下文)标准对此非常明确:Theresultoftheunary&operatorisapointertoitsoperand.Symmetry建议命名为&referenceoperator这有点不幸,因为它与C++中的引用发生冲突。&返回一个指针这一事实表明指针运算符。是否有任何官方消息来源可以证实这些(或其他)命名?指针与地址指针是一种语言机制,而地址是一种实现细

c++ - 使用相同的参数名称和成员名称是否有效

这是否有效C++,假设我想将参数变量复制到成员变量:structStruct{Struct(constT&value):value(value){}Tvalue;};(更新:它在VisualStudio中工作,但仍然可能依赖于编译器)(预期问题:为什么需要这个?答案:宏制作目的) 最佳答案 这确实是有效的代码,就像其他答案一样,我会警告您应该非常小心地使用它,因为它可能会造成混淆,并可能导致难以维护代码。那么为什么这样做有效呢?如果我们考虑您的构造函数:Struct(constT&value):value(value){}^^121

c++ - 使用已被占用的函数名称

假设一些第三方开发人员编写了一个函数intGetErrorCode(constobject*p);此函数仅返回特定的int值,因此我很想编写自己的ErrorCode枚举类,其中包含所有可能的返回值。然后写一点更新函数:enumclassErrorCode:int{};ErrorCodeGetErrorCode2(constobject*p){return(ErrorCode)GetErrorCode(p);}问题是我希望我的函数被命名为GetErrorCode而不是那么不直观的GetErrorCode2。我怎样才能做到这一点?也许有一种方法可以交换函数名称或其他东西?

c++ - Qt:QScrollArea 中的自定义小部件

我正在尝试创建自定义小部件。我的小部件呈现自身,除非它在滚动区域内。下面的代码有效。如果我在MainWindow构造函数中将if(0)更改为if(1),它将不会呈现“HelloWorld”字符串。我假设我必须(重新)实现一些额外的方法,但到目前为止我还无法通过反复试验找到正确的方法。//hellowidget.h#ifndefHELLOWIDGET_H#defineHELLOWIDGET_H#includeclassHelloWidget:publicQWidget{Q_OBJECTpublic:HelloWidget(QWidget*parent=0);voidpaintEvent(